package com.tyf.util;


import org.apache.poi.sl.usermodel.SlideShow;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;

/**
 *  判断文件后缀名，跳入对应的提取图片方法
 */
public class OfficeToJudge {
    /**
     * 以下方法包含常用的office 2007版本以及 office 2016版本  的六种文件 以及 pdf 和 txt  为了判断文件后缀名类型
     * @param file
     * @throws IOException
     */
    public static List<File> formatConversionOffice(File file) throws IOException {
        //获取文件后缀名
        String substring = file.getName().substring(file.getName().lastIndexOf(".") + 1);
        /**
         * 如果封装了这个格式调用工具累，只能识别图片，这个工具类是不是多次一举？
         * 而且，也可以直接进行格式分析并在意外情况下直接返回false
         */
        try{
            if("pptx".equals(substring)){
                SlideShow slideShow = new XMLSlideShow(new FileInputStream(file));
                return OfficeOfPicture.pptxPicture(slideShow);
            }
            if("ppt".equals(substring)){
                XMLSlideShow xmlslideShow = new XMLSlideShow(new FileInputStream(file));
                return OfficeOfPicture.pptPicture(xmlslideShow);
            }
            if("xls".equals(substring)){
                throw new RuntimeException("不支持"+substring+"识别图片");
            }
            if("xlsx".equals(substring)){
                throw new RuntimeException("不支持"+substring+"识别图片");
            }
            if("doc".equals(substring)){
                return OfficeOfPicture.docPicture(file.toString());
            }
            if("docx".equals(substring)){
                return OfficeOfPicture.docxPicture(file.toString());
            }
            if("pdf".equals(substring)){
                return OfficeOfPicture.pdfPicture(file);
            }
            if("txt".equals(substring)){
                throw new RuntimeException("不支持"+substring+"识别图片");
            }
        }catch (Exception e){
            throw new RuntimeException("不支持");
        }
        return null;
    }
}
